package io;
import java.io.File;
import java.util.Scanner;
//TODO 查找硬盘上的文件位置
public class IODemo13 {
    public static void main(String[] args) {
        //输入必要的信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要搜索的文件名: ");
        String fileName = scanner.next();
        System.out.println("请输入要搜索的目录: ");
        String rootPath = scanner.next();
        File rootFile = new File(rootPath);
        if(!rootFile.isDirectory()) {
            System.out.println("输入的路径有误!");
            return;
        }
        //2.有了路径后,可以按照递归方式来搜索
        //知道递归的起点,还需要知道要查询的文件名
        scanDir(rootFile,fileName);
    }
    private static void scanDir(File rootFile,String fileName) {
        //1.列出当前所有的文件和子目录
        File[] files = rootFile.listFiles();
        if(files == null) {
            //空的目录,直接返回即可
            return;
        }
        //2.遍历上述files,判定每个file是目录还是文件
        for(File file : files) {
            System.out.println("当前遍历到: " + file.getAbsolutePath());
            if (file.isFile()) {
                //是普通文件,判定文件名是否是搜索文件
                if(fileName.equals(file.getName())) {
                    System.out.println("找到了符合要求的文件! " + file.getAbsoluteFile());
                }
            } else if (file.isDirectory()) {
                //目录文件,就需要进一步的递归
                scanDir(file,fileName);
            }else {

            }
        }
    }
}
